package com.lixueju.security.box.core.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 用户基础表，存储用户基本信息
 * </p>
 *
 * @author lixueju
 * @since 2019-11-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("u_user")
public class User extends BaseModel {

    private static final long serialVersionUID = 1L;

    /**
     * 本表主键
     */
    @TableId(value = "id", type = IdType.ID_WORKER)
    private Long id;

    /**
     * 公司ID
     */
    @TableField("companyId")
    private Long companyId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 支付宝绑定ID
     */
    @TableField("zfbBindingId")
    private String zfbBindingId;

    /**
     * 微信绑定ID
     */
    @TableField("wxBindingId")
    private String wxBindingId;

    /**
     * 密码
     */
    private String password;

    /**
     * token：用户登录身份
     */
    private String token;

    /**
     * 身份许可证
     */
    private String permission;

    /**
     * 昵称
     */
    @TableField("nickName")
    private String nickName;

    /**
     * 用户类型
     */
    @TableField("userType")
    private Integer userType;

    /**
     * 真实姓名
     */
    @TableField("realName")
    private String realName;

    /**
     * 身份证号
     */
    @TableField("identityNo")
    private String identityNo;

    /**
     * 性别，1男 2女，详见枚举
     */
    private Integer gender;

    /**
     * 出生日期
     */
    private Date birthday;

    /**
     * 头像
     */
    @TableField("avatarUrl")
    private String avatarUrl;

    /**
     * 省
     */
    @TableField("provinceName")
    private String provinceName;

    /**
     * 省code
     */
    @TableField("provinceCode")
    private String provinceCode;

    /**
     * 市
     */
    @TableField("cityName")
    private String cityName;

    /**
     * 市code
     */
    @TableField("cityCode")
    private String cityCode;

    /**
     * 区、县
     */
    @TableField("areaName")
    private String areaName;

    /**
     * 区code
     */
    @TableField("areaCode")
    private String areaCode;

    /**
     * 定位地址（地图选址）
     */
    @TableField("gpsAddress")
    private String gpsAddress;

    /**
     * 通信地址（手动输入）
     */
    private String address;

    /**
     * 状态：详见枚举
     */
    private Integer status;

    /**
     * 删除标记，1未删除 、2删除，详见枚举
     */
    @TableField("delFlag")
    private Integer delFlag;

    /**
     * 修改时间
     */
    @TableField("updateTime")
    private Date updateTime;

    /**
     * 创建时间
     */
    @TableField("createTime")
    private Date createTime;


}
